/**
 * @(#)SmsService.java.java	1.0  16-06-2014 
 *
 * Copyright 2014 Viettel Telecome. All rights reserved.
 * VIETTEL PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
 */
package com.viettel.core.entities.service;

import java.io.Serializable;

import javax.persistence.Basic;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;

import org.hibernate.annotations.Cache;
import org.hibernate.annotations.CacheConcurrencyStrategy;

/**
 *  DICH VU SMS
 *  @author: toantm1
 *  @since: 16-06-2014 - 09:54:27
 */
@Entity
@Table(name = "SMS_SERVICE")
@Cache(usage = CacheConcurrencyStrategy.READ_WRITE)
@SequenceGenerator(name = "SEQ_STORE", sequenceName = "SMS_SERVICE_SEQ", allocationSize = 1)
public class SmsService implements Serializable{

	/**
	 * 
	 */
	private static final long serialVersionUID = 1255908244397210868L;

	/** The id. */
	@Id
	@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "SEQ_STORE")
	@Column(name = "ID", precision=10, scale=0)
	private Integer id;
	
	/**
	 *  TEN DICH VU
	 */
	@Basic
	@Column(name = "NAME", length=30, nullable=false)
	private String name;
	
	/**
	 * MO TA DICH VU
	 */
	@Basic
	@Column(name = "DESCRIPTION", length=500)
	private String description;
	
	/**
	 * them nhom dich vu
	 */
	@Basic
	@Column(name = "GROUP_ID", precision = 10, scale = 0)
	private Long groupId;
	
	/**
	 * 1: Textbase (online), 2: Sub (SUB, PACK) (offline)
	 */
	@Basic
	@Column(name = "TYPE", precision = 2, scale = 0)
	private Byte type;
	
	/**
	 * CHi co dich vu sub thi truong nay moi khac null
	 */
	@Basic
	@Column(name = "REG_TABLE", length=30)
	private String regTable;
	
	/**
	 * 0: Normal Sub; 1: Package
	 */
	@Basic
	@Column(name = "SUB_TYPE", precision = 2, scale = 0)
	private Byte subType;
	
	/**
	 * Serivce code cua subscription_id
	 */
	@Basic
	@Column(name = "SERVICE_CODE", length=50)
	private String serviceCode;

	/**
	 * @return the id
	 */
	public Integer getId() {
		return id;
	}

	/**
	 * @return the name
	 */
	public String getName() {
		return name;
	}

	/**
	 * @return the description
	 */
	public String getDescription() {
		return description;
	}

	/**
	 * @return the groupId
	 */
	public Long getGroupId() {
		return groupId;
	}

	/**
	 * @return the type
	 */
	public Byte getType() {
		return type;
	}

	/**
	 * @return the regTable
	 */
	public String getRegTable() {
		return regTable;
	}

	/**
	 * @return the subType
	 */
	public Byte getSubType() {
		return subType;
	}

	/**
	 * @return the serviceCode
	 */
	public String getServiceCode() {
		return serviceCode;
	}

	/**
	 * @param id the id to set
	 */
	public void setId(Integer id) {
		this.id = id;
	}

	/**
	 * @param name the name to set
	 */
	public void setName(String name) {
		this.name = name;
	}

	/**
	 * @param description the description to set
	 */
	public void setDescription(String description) {
		this.description = description;
	}

	/**
	 * @param groupId the groupId to set
	 */
	public void setGroupId(Long groupId) {
		this.groupId = groupId;
	}

	/**
	 * @param type the type to set
	 */
	public void setType(Byte type) {
		this.type = type;
	}

	/**
	 * @param regTable the regTable to set
	 */
	public void setRegTable(String regTable) {
		this.regTable = regTable;
	}

	/**
	 * @param subType the subType to set
	 */
	public void setSubType(Byte subType) {
		this.subType = subType;
	}

	/**
	 * @param serviceCode the serviceCode to set
	 */
	public void setServiceCode(String serviceCode) {
		this.serviceCode = serviceCode;
	}
}
